import axios from 'axios'

// 进度条提示
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'

const mockRequest = axios.create({
    baseURL: '/mock', //  基础路径，请求地址公共前缀
    timeout: 10000,
    headers: {}
})

// 配置请求拦截器
mockRequest.interceptors.request.use((confige) => {
    // console.log(confige, '请求拦截成功的回调')
    NProgress.start(); // 请求前开启进度条
    return confige;
})

// 配置响应拦截器
mockRequest.interceptors.response.use((response) => {
    // console.log('响应拦截成功触发的回调')
    NProgress.done(); // 请求结束，进度条结束
    if (response.data.code === 200) {
        // 请求成功，功能成功，返回数据                                                                                                   
        return response.data.data
    } else {
        // 请求失败或功能失败(状态码不是200)，返回失败的状态码和错误信息
        return Promise.reject(('失败状态码：' + response.data.code + response.data.message) || '未知错误')
    }
}, (error) => {
    // console.log('响应拦截失败触发的回调')
    NProgress.done(); // 请求结束，进度条结束

    return Promise.reject(error)
})

export default mockRequest